
Documentation for result of GETVALASSUM
[Start ValAssumVector Canadian]
    Decrements
      [1]  <mortRates see DECRATES_MORTRATE_DEF> Mortality rates (active members)     (same as pension)
      [2]  <termRates see DECRATES_TERMRATE_DEF> Termination rates (active members)     (same as pension)
      [3]  <disRates see DECRATES_DISABRATE_DEF> Disability rates (active members)      (same as pension)
      [4]  <retRates see DECRATES_RETRATE_DEF> Retirement rates (active members)      (same as pension)
      [5]  <retNormRates see DECRATES_MORTRATE_DEF> Retirement mortality rates (inactive members) (same as pension)
      [6]  <vestedTermMortRates see DECRATES_MORTRATE_DEF> Vested terminated mort. rate (inactive members) (same as pension)
      [7]  <disMemberMortRates see DECRATES_MORTRATE_DEF> Disabled members mort. rate (inactive members) (same as pension)
      [8]  <surBenMortRates see DECRATES_MORTRATE_DEF> Survivor & beneficiary mort. rate (inactive members) (same as pension)
      [9]  <decrType code> Rates to adjust for competing decrements
               1=all (rates)
               2=none (probabilities)
               3=mortality only
      [10] <decrBegMid bool> Decrement occurs beginning or middle of year? (0=beginning, 1=middle)
      [172] <zeroTrmRet bool> Termination rates continue upon Retirement eligibility? (0=no (default), 1=yes)
      [173] <TVretRates see DECRATES_RETRATE_DEF> Post-termination retirement rates
      [175] <preCOMMzero bool> Assume zero pre-commencement mortality? 1=Yes, 0=No
      [184] <decrMixLRLY bool> Used retired members mortality for contingent lives prior to member death? (0=no, 1=yes)
      [197] <zeroDisRet bool> Disability rates continue after retirement eligibility? (1=yes (default), 0=no)
      [208] <precommzerofld nameref> Used if [175]=1, coded field for zero pre-comm mort, '' if <all participants>
      [209] <precommzerocodes vector> Used if [175]=1, codes for participants with zero pre-comm mort

    Interest & Salary
      [11] <salMeritScale see DECRATES_SALSCALE_DEF> Salary merit scale
      [180] <addtlMeritScale see DECRATES_SALSCALE_DEF> Additional salary merit scale
      [12] <salIncType code> Salary increase rate type:
           1=rates vary by calendar year
           2=rates vary by coded database field
           3=single rate
           8=rates vary by calendar year and coded field
      [13] <staticSalInc numorstr> Static salary increase rate (used if type=3) (can be an assumption constant)
      [14] <varSalInc matrix> Variable salary increase rate  (used if type #in 1 8)
           An N #times 2 table having a row for each year in which the rate changes.  The columns hold:
           [;1]  <startYear int> starting year (calendar)
           [;2]  <rate numorstr> increase rate (used if type=1, else use info in [205]) (can be assumption constant)
           The table is sorted by year, and the first row applies to all years
           prior to the year specified on the second row.
      [15] <intType code> Interest rate type:
           1 = static (items 16 & 17 are used)
           3 = variable by calendar year (table in item 18 is used)
           4 = variable by duration from val date input as forward rates (available for accounting only) (table in item 120 is used)
           5 = variable by duration from val date input as spot rates (available for accounting only) (table in item 120 is used)
           7 = interest rate table from yield curve library
      [16] <staticIntPreRet numorstr> Static interest rate - pre-retirement (can be an assumption constant)
      [17] <staticIntPostRet numorstr> Static interest rate - post-retirement (can be an assumption constant)
      [18] <calInt matrix> Cal yr interest rate table.  An N #times 2 table having a row for each year in which the rate changes.
           (used when interest rate type=3) The columns hold:
           [;1]  <startYear int> starting year
           [;2]  <rate num> interest rate
           The table is sorted by year, and the first row applies to all years
           prior to the year specified in the second row.
      [119] <overridesal see SALASSUMS_DEF> Salary increase overrides for individual operators
      [120] <varIntD matrix> Variable interest rate table
            An N #times 2 table having a row for each duration in which the rate changes.
            (used when interest rate type #in 4 5) The columns hold:
            [;1]  <startYear int> starting duration
            [;2]  <rate num> interest rate
            The table is sorted by duration, and the first row applies to all
            durations prior to the duration specified in the second row.
      [140] <staticIntInDef numorstr> Static interest rate - in-deferment (can be an assumption constant)
      [204] <salField nameref> Name of salary increase coded database field (used if type #in 2 8)
      [205] <salCodedRates matrix> Salary increase coded database field rates (used if type #in 2 8)
            [;1] <code int> internal database code
            [;2] <const numorstr> constant value, or vector of values for calendar years (can be assumption constant)
      [206] <intRateTable ref INTRATE> id of interest rate table (only used when [15]=7)

    Benefit Related
      [34] <increaseRates see INCRATES_DEF> Component increase rates/Cash Balance crediting rates.  (same as pension)
      [64] <lsfactorIntAndMort see LSASSUMS_DEF> Interest and Mortality Basis for Lump Sum Factors (same as pension)
      [128] <mcrRates see INCRATES_DEF> Component deferral interest rate for Modified Cash Refund Annuity payment form

    Election Probabilities
      [122] <optjs code> for joint life optional payment forms
           1=apply percent married assumption
           2=ignore percent married assumption
      [19] <qprimes see QPRIMES_DEF> The Q' is the probability (at decrement) of participant electing to receive a benefit.
           This item is a matrix having a row for each benefit for which Q's
           have been specified and columns holding [see QPRIMES_DEF below]

    Liability Methods
      [20] <costMeth matrix> Types of cost methods (1=method chosen, 0=method not chosen):
           [1]  <entAgeNormLevelSal bool> entry age normal -- level % of salary  (Funding)
           [2]  <entAgeNormLevelDol bool> entry age normal -- level dollar       (Funding)
           [3]  <puc bool>                projected unit credit                  (Funding)
                                          projected benefit obligation           (Accting)
           [4]  <pucAccruedBen bool>      pure unit credit                       (Funding)
                                          accumulated benefit obligation         (Accting)
           [5]  <altAbo bool>             alternative ABO                        (Accting) (not supported eff with 3.10)
           [6]  (not used)
           [7]  (not used)
           [8]  <attagepct bool>          attained age - level % of salary       (Funding) (Public, SERP, Canadian, & German)
      [21] <entAgeNormMeth code> Entry Age Normal Methodology
            0 = Fund from entry age to 100% retirement decrement age
            1 = Fund from entry age to age benefit has no future benefits
      [30] (not used)
      [31] <pucBenGtUc bool> PUC (PBO) benefits never less than UC (ABO) benefits? (0 = No, 1 = Yes)
      [32] <pucSvcField nameref> PUC service field name or '' if service defined in census is used (used iff [70]=0)
      [33] <termCost [] ref BENDEF> Term Cost -- a vector of benefit ID numbers
      [35] (not used) (AL methods in old format (base 2) at time of conversion stored here)
      [55] <calcVestedLiab code> Calculate vested liabilities? (can be MV)
              0=no
              1=yes
      [56] <runIndAgg bool> Run individual aggregate? (1=yes, else no)
      [57] <allocMeth code> Allocation method
               1=current year's liability
               2=database expression
      [58] <allocAsset code> Liability for allocating assets
               1=EAN $
               2=EAN %
               3=PUC
               4=UC
               5=PVFB
      [59] <databaseExprMin expr> Database expression for minimum basis
      [60] <databaseExprMax expr> Database expression for maximum basis (qualified pension only)
      [61] <recs [] nameref> Record indentifiers; matrix of field names
      [65] <pucEqualUc bool> PUC equal UC for cash balance and career average components
      [70] <pucSvcFldOrDef bool> Using ProVal service field (0) or service definition (1)
      [71] <pucSvcDEFN ref SVCDEFN> ID of ProVal service definition for PUC service (used iff [70]=1)
      [88] <timingPVFS code> Timing of PVFS:
              0 = beginning of year
             .5 = middle of year
              1 = end of year
              2 = middle of year, except survivorship at end of year
      [89] <adjustPVFS vector> Adjust PVFS to middle or end of year with
           [1] <int bool> interest
           [2] <mort bool> survivorship
           [3] <salary bool> salary
      [115] <timingEEContrib num> Timing for employee contributions:
              0 = beginning of year, except survivorship at end of year
              .5 = middle of year, except survivorship at end of year
              2 = same as timing for PVFS, PVFL, val. salary & number adjusted for decrement timing
              3 = beginning of year
              4 = middle of year
      [123] <salLimitCode code> Code for salary limitations in PVFS calculation
              0 = no limits
              1 = limited per 401(a) maximums
              2 = custom limit
              3 = limit by coded field
      [124] <salLimitCustreg ref CUSTREG> ID of Custom Regulatory Table used for PVFS salary limitation (used if [123]=2)
      [127] <pucSvcZero bool> If service accrual is 0, assume 1 (0=no, 1=yes) (used if [70]=1)
           (hidden parameter, only set =1 to avoid changes log issue)
      [130] <EANNCEECMethod bool> Methodology for employee contributions under EAN NC
              0=Level contributions over career ($ or % of pay)
              1=Expected contributions for the year
      [131] <VLdectiming code> Vested liability eligibility code
              1=follow decrement timing
              2=always beg of year
      [137] <calcsolv bool> Calculate Solvency Liability? 0=no, 1=yes
      [147] <salCountPBPdisplay bool> Display of projected salary & headcount valuation output:
              1=Total count and total Salary
              2=Valuation count and valuation Salary
      [174] <VLeligage code> VL eligibility age:
              1=current age
              2=decrement age
              (Note: This item is entered on the "Current liability" dialogbox in
               multiemployer, pre-PPA, and pre-PPA and PPA funding assumptions)
      [176] <codedLimit vector> Coded field table for PVFS limit (used if [123]=3),
            a nested vector holding:
            [1] <field nameref> name of coded field in database
            [2] <item matrix> matrix with a row for each database code, and columns for:
                [;1] <databaseCode int> internal database codes
                [;2] <basisValue num> PVFS limit
                      0 = none
                     #neg1 = per 401(a)
                     >0 = id of Custom Regulatory Table
      [177] <calcNonindex bool> Calculate nonindexed Liability? 0=no, 1=yes
      [178] <nonindexMethod code> Cost method for nonindexed Liability
              1 = entry age normal -- level % of salary
              2 = entry age normal -- level dollar
              3 = projected unit credit
              4 = pure unit credit
              8 = attained age - level % of salary
      [179] <eanHistSal code> EAN historical salaries for PVFS at entry
              1=Impute salaries prior to valuation date
              2=Use actual salaries where available
      [185] <aveEAN bool> Use average EAN technique?
      [186] <aveEANdatabaseFile str> Database file name used to determine average EAN %
      [187] <aveEANselection expr> Selection expression used to determine ave EAN % /NAMEREF FLDINFO
      [203] <aveEANfrac num> Average EAN expense fraction
      [198] <eancap ref SVCDEFN> ID of service definition used for cap on val salary
      [199] <PVFSdef ref SALDEFN> Salary definition used for PVFS and valuation salary

    Other Valuation Parameters
      [22] <ageRetFund num> Age requirement for funding
      [23] <svcReqFund num> Service requirement for funding
      [26] <fracPopMarMale num> Fraction of population that is married -- Male
      [27] <fracPopMarFem num> Fraction of population that is married -- Female
      [28] <yearsOlderMale num> Number of years older a member is than their spouse -- Male
      [29] <yearsOlderFem num> Number of years older a member is than their spouse -- Female
      [36] (not used)
      [45] <fundEligSvcField nameref> Funding eligibility service field, or '' if service
           defined in census is used (used iff [72]=0)
      [47] <fundEligDate date> Funding eligibility date - constant value
      [72] <fundEligSvcFldOrDef bool> Using ProVal service field (0) or service definition (1)
      [73] <fundEligSvcDEFN ref SVCDEFN> ID of ProVal service definition for Funding
           eligibility service (used iff [72]=1)
      [113] <popMarType code> Fraction of population married code:
           1 = constant (items 10 and 11 are used)
           2 = table (table in item 114 is used)
      [114] <popMarried see FRACMARRIED_DEF> Fraction of population married (used if [113]=2)
      [125] <AgeDiffType code> Spouse age difference code:
           1 = constant (items 28 and 29 are used)
           2 = table (table in item 126 is used)
      [126] <AgeDifference ref SPAGEDIFF> Spouse age difference table (used if [125]=2)

    Solvency Liability
      [50] <solType code> Transfer Value interest rate type:
            0 = not used (was use valuation assumptions)
            1 = static (use item 51) (obsolete)
            2 = not used (was variable by calendar year)
            3 = variable by calendar year (obsolete)
            4 = variable by duration from val date (input as forward rates)
      [51] <staticInt num> Static transfer value interest rate
      [52] <solvVarInt matrix> Variable transfer value interest rate table.  An N #times 2 table having
           a row for each year in which the rate changes.  The columns hold:
           [;1]  <startYear int> starting year or duration
           [;2]  <rate num> interest rate
           The table is sorted by year, and the first row applies to all years
           prior to the year specified in the second row.
      [53] <solvGrowIn bool> Grow in to eligibility? (0=no, 1=yes, 2=for TV and deferred AP only)
      [54] <solvGrowInEligReq matrix> Solvency Grow-in Eligibility requirements --
           a numeric matrix with a row for each requirement.  The columns hold:
           [;1]  <age num> age required
           [;2]  <svc num> service required
           [;3]  <points num> age+service points required
      [66] <solvSvcField nameref> ProVal name of solvency grow-in service field
           or '' if service defined in census is used (used iff [76]=0)
      [67] <solvSelExpr expr> Solvency grow-in selection expression
      [68] <solvImmedElig bool> Immediate eligibility for a termination benefit? (0=no, 1=yes)
      [69] <solvZeroMort bool> Zero pre-election mortality? (0=no, 1=yes)
      [76] <solvSvcFldOrDef bool> Using ProVal service field (0) or service definition (1)
      [77] <solvSvcDEFN ref SVCDEFN> ID of ProVal service definition for solvency grow-in service (used iff [76]=1)
      [90] <solvImmAnnPurRate num> Immediate annuity purchase interest rate
      [91] <solvActPerc num> Percent of active participants to value using def annuity purchase rate
      [92] <solvEligReq matrix> Active conditions for using immediate rate -- a numeric matrix with a row for each requirement. (used iff [183]=2)
           The columns hold:
           [;1]  <age num> age required
           [;2]  <svc num> service required
           [;3]  <points num> age+service points required
      [93] <solvMortRates ref MORTRATE> Solvency transfer value mortality rates  [id# of table, 0 if using val assumps, #neg1 if using val assumps assuming 0 pre-comm mort for all]
      [94] <solvAnnPur bool> Separate annuity purchase rate? 0=use separate rates, 1=Use transfer value rate
      [95] <solvDefAnnPurRate num> Deferred annuity purchase interest
      [96] <solvAnnPurchMortRates ref MORTRATE> Solvency annuity purchase mortality rates  [id# of table, 0 if using val assumps, #neg1 if using val assumps assuming 0 pre-comm mort for all]
      [97] <solvAgeReq num> Inactive age requirement for using immediate rate (used iff [148=1])
      [98] <solvImmAnnPurSvcFldOrDef bool> Using service field (0) or service definition (1) (used iff [183]=2)
      [99] <solvImmAnnPurSvcField nameref> Name of service field for active immed ann purch eligibility
           or '' if service defined in census is used (used iff [98]=0)
      [100] <solvImmAnnPurSvcDEFN ref SVCDEFN> Service definition id# (used iff [98]=1)
      [101] <solvInactPerc num> Percent of inactive participants to value using def annuity purchase rate
      [103] (not used)
      [116] <solvRetImm bool> If ret elig, assume immediate commencement if available? (1=yes, 0=no)
      [117] <solvRetTV bool> If ret elig, compare to transfer value of termination benefits? (1=yes, 0=no)
      [118] (not used) [was a flag]
      [134] <solvapplyAPpct bool> Blend Ann. Purch./Transfer Value for eligible participants (1=yes, 0=no)
      [135] <solvAPactpct num> % of actives eligible for immed. annuity purchase assumed to receive immed annuity purchase (remainder take transfer value)
      [136] <solvAPinactpct num> % of inactives eligible for immed. annuity purchase assumed to receive immed annuity purchase (remainder take transfer value)
      [148] <solvAgeReqType code> Type of inactive age req to use solv immediate AP rate
               1=constant
               2=db field
      [149] <solvAgeReqField nameref> Name of age field for inactive age req to use solv immediate AP rate (used iff [148=2])
      Note: columns 143 and 166-171 are used iff [134]=1
      [143] <solvSplit code> Split  (used iff [170]=2)
               1=always value specified % with IAP
               2=value specified % with max of transfer value & IAP
      [166] <solvUnredAge matrix> Conditions for unreduced payment age (used iff [170]=1 and [171]=1)
            A numeric matrix with a row for each requirement.  The columns hold:
           [;1]  <age num> age required
           [;2]  <svc num> service required
           [;3]  <points num> age+service points required
      [167] <solvUnredAge bool> 0=use service field 1=service definition (used iff [166] has any service requirements)
      [168] <solvUnredAgeSvcField nameref> Name of service field for unreduced payment age (used iff [167]=0 & [166] has service requirements)
      [169] <solvUnredAgeSvcDEFN ref SVCDEFN> Service definition id# (used iff [167]=1)
      [170] <solvTermOrElig code> For transfer value calculations use
               1=termination benefit only
               2=eligible (i.e, ret or term) benefits
      [171] <solvIAPstop bool> Use only IAP upon reaching unreduced payment age? 0=no, 1=yes (used iff [170]=1)
      [182] <preCOMMzeroAP bool> Assume zero pre-commencement annuity purchase mortality for inactives and actives after decrement (0=no (default), 1=yes)
      [181] <preCOMMzeroTV bool> Assume zero pre-commencement transfer value mortality for inactives and actives after decrement (0=no (default), 1=yes)
      [183] <eligReq code> Eligibility for immediate annuity purchase active participants based on:
               1=retirement eligibility
               2=specified conditions
      [188] <electSolv bool> Are the solvency/windup election probabilities equal to ongoing assumptions?
      [189] <qprimesTV see QPRIMES_DEF> The Q' is the probability (at decrement) of participant electing to receive a benefit.
            This item is a matrix having a row for each benefit for which Q's
            have been specified and columns holding [see QPRIMES_DEF below]
      [190] <windUpType bool> Windup interest rate same as solvency (1=same as Solvency, 0 = input separately)
      [191] <windUpVarInt matrix> Variable windup transfer value interest rate table.  An N #times 2 table having
           a row for each year in which the rate changes.  The columns hold:
           [;1]  <startYear int> starting year or duration
           [;2]  <rate num> interest rate
           The table is sorted by year, and the first row applies to all years
           prior to the year specified in the second row.
      [192] <windupImmAnnPurRate num> Windup immediate annuity purchase interest rate
      [193] <windupDefAnnPurRate num> Windup deferred annuity purchase interest rate
      [195] <electAP bool> Are the annuity purchase election probabilities equal to transfer value assumptions?
      [196] <qprimesAP see QPRIMES_DEF> The Q' is the probability (at decrement) of participant electing to receive a benefit.
            This item is a matrix having a row for each benefit for which Q's
            have been specified and columns holding [see QPRIMES_DEF below]
      [200] <solvOVStopAgeMth code> Last age to consider for solvency optimal value
              0 = 100% retirement age
              1 = constant age
              2 = age from db field
      [201] <solvOVStopAgeConst num> Constant last age to consider for solvency optimal value (if [200]=1)
      [202] <solvOVStopAgeField nameref> Name of database field containing last age to consider for solvency optimal value (if [200]=2)

   Solvency & Windup Liability COLA assumptions
      [105] <tvColaPayPeriod see DECRATES_COLA_DEF in COLA#deltaDOC> Transfer value COLA during payment period
      [106] <tvColaDeferPeriod see DECRATES_COLA_DEF in COLA#deltaDOC> Transfer value COLA during deferral period
      [107] <tvColaType code> Transfer value COLA rate type
               1 = compound
               2 = simple
               3 = advanced (i.e. expression in [163]))
      [108] <tvColaOverrides see COLAASSUMS_DEF> Transfer value COLA overrides for individual benefits
      [109] <apColaPayPeriod see DECRATES_COLA_DEF in COLA#deltaDOC> Annuity Purchase COLA during payment period
      [110] <apColaDeferPeriod see DECRATES_COLA_DEF in COLA#deltaDOC> Annuity Purchase COLA during deferral period
      [111] <apColaType code> Annuity Purchase COLA rate type
               1 = compound
               2 = simple
               3 = advanced (i.e. expression in [164]))
      [112] <apColaOverrides see COLAASSUMS_DEF> Annuity Purchase COLA overrides for individual benefits
      (Items [153]-[158] not currently editable)
      [153] <tvColaTimeType code> Transfer value COLA timing type
               1 = end of year
               2 = constant date
               3 = database field
      [154] <tvColaTimeDate date> Transfer value COLA date (if [153] = 2)
      [155] <tvColaTimeField nameref> Transfer value COLA field (if [153] = 3)
      [156] <apColaTimeType code> Annuity purchase COLA timing type
               1 = end of year
               2 = constant date
               3 = database field
      [157] <apColaTimeDate date> Annuity purchase COLA date (if [156] = 2)
      [158] <apColaTimeField nameref> Annuity purchase COLA field (if [156] = 3)
      [163] <tvCOLAFormula expr> Transfer value COLA formula (character vector, used if [107]=3)
      [164] <apCOLAFormula expr> Annuity Purchase COLA formula (character vector, used if [111]=3)
      [194] <zeroSolvCola bool> Set solvency Liability COLAs to zero (1=yes)

    Alternative ABO
      [38] <intRate num> Interest rate

    Statutory Data
      [37] <limit415SvcField nameref> 415 limit: participation service field, or '' if service defined
           in census is used (used iff [74]=0)
      [39] <limit415IntBefore62 num> 415 limit: interest rate before age 62
      [40] <limit415IntAfterSS num> 415 limit: interest rate after S.S. normal retirement age
      [41] <limit415Mort ref MORTRATE> 415 limit: mortality table ID number
      [42] <histStatutoryOver see STATOVER_DEF> Historical Statutory data override
      [43] <limit415ApplyMortDis bool> 415 limit: apply mortality discount in actuarial reductions & increases
           (1=yes, else no)
      [44] <limit415ApplyActInc bool> 415 limit: apply actuarial increases after SSNRA (1=yes, else no)
      [46] <limit415High3 code> 415 limit: highest 3-year average salary limitation:
           1 = Valuation Salary from Census Specifications
           2 = Alternative Salary Definition
           3 = Limitation not applicable
      [48] <limit415SalDefin ref SALDEFN> 415 limit: salary definition id# (used w/alternative salary)
      [49] <limit415Apply10k bool> 415 limit: apply $10,000 exemption (1=yes, else no)
      [63] <apply2001 bool> Apply 2001 Tax Act actuarial equivalence and rounding provisions (1=yes)
      [74] <limit415PartSvcFldOrDef bool> Using ProVal service field (0) or service definition (1)
      [75] <limit415PartSvcDEFN ref SVCDEFN> ID of ProVal service definition for participation service (used iff [74]=1)
      [78] <ITAPartSvcFldOrDef bool> Using ProVal service field (0) or service definition (1)
      [79] <ITASvcField nameref> ITA limit: service field for benefit accruals, or '' if service defined in census is used (used iff [78]=0)
      [80] <ITAPartSvcDEFN ref SVCDEFN> ID of ProVal service definition for benefit accruals (used iff [78]=1)
      [81] <ITASvcSplit bool> ITA service split based on reform date
      [82] <ITASvcPre nameref> ITA prereform service - only field allowed (used iff [81]=1)
      [83] <ITAPartPstSvcFldOrDef bool> Using post reform service field (0) or service definition (1) (used iff [81]=1)
      [84] <ITAPartPstSvcField nameref> ITA post reform: participation service field, or '' if service defined
           in census is used (used iff [81 83]=1 0)
      [85] <ITAPartPstSvcDEFN ref SVCDEFN> ID of ProVal service definition for participation service (used iff [81 83]=1 1)
      [86] <PublicRedFac bool> Apply public safety plan early reduction factor
      [87] <applyITAMax bool> Apply Canadian ITA maximum pension limit (1=yes)
      [102] <UseITAMaxSolv bool> Use valuation date ITA value for Solvency Liability (1=yes)
      [129] <limit415PayFreq code> Payment frequency to be used in actuarial reduction & increase factors
               1=Annual boy
               2=Use plan's benefit payment frequency and timing
      [132] <GerAI str> database field name for federal state, or <all former West Germany> or <all former East Germany>
      [133] <GerAI matrix> field mapping matrix.  Has a row for each possible value of the
            database field, and columns holding:
            [;1] <databaseCode int> internal code of status field in database
            [;2] <GerAI code> corresponding status, represented as follows:
                 1 = former West Germany
                 2 = former East Germany
      [138] <GerKLField str> coal miner coded field, or <all coal miners> or <all statutory>
      [139] <GerKL matrix> field mapping matrix.  Has a row for each possible value of the
            database field, and columns holding:
            [;1] <databaseCode int> internal code of coal miner field in database
            [;2] <GerKL code> federal state codes:
                 1 = coal miner
                 2 = statutory
      [141] <GerSVRTField str> SVR retirement type coded field, or <all ordinary retirement>
      [142] <GerSVRT matrix> field mapping matrix.  Has a row for each possible value of the
            database field, and columns holding:
            [;1] <databaseCode int> internal code of SVR type in database
            [;2] <GerKL code> SVR type codes:
                 1 = Ordinary retirement
                 2 = Severely handicapped
                 3 = Part-time pre-retirement (ATZ)
      [144] <ITAERFSvcFldOrDef bool> Using ProVal service field (0) or service definition (1)
      [145] <ITAERFSvcField nameref> ITA limit: service field for early ret factors, or '' if service defined in census is used (used iff [144]=0)
      [146] <ITAERFSvcDEFN ref SVCDEFN> ID of ProVal service definition for early ret factors (used iff [144]=1)
      [159] <415pre62bens bool> Do not reduce death and disability benefits before age 62
      [160] <415pre62and15 bool> Do not reduce benefits before age 62 if 15 years of participation service
      [161] <415proFraction bool> Do not apply proration fraction to death and disability benefits
      [210] <ITArecwarn bool> Display ITA max applied to records in processing messages

    Cost-of-Living Adjustments (COLAs)
      [24] <colaPayPeriod see DECRATES_COLA_DEF in COLA#deltaDOC> COLA during payment period    (same as pension)
      [25] <colaDeferPeriod see DECRATES_COLA_DEF in COLA#deltaDOC> COLA during deferral period   (same as pension)
      [62] <type code> Rate type
               1 = compound
               2 = simple
               3 = advanced (i.e. expression in [162]))
      [104] <colaOverrides see COLAASSUMS_DEF> COLA overrides for individual benefits
      [150] <colaTimeType code> COLA timing type
               1 = end of year
               2 = constant date
               3 = database field
      [151] <colaTimeDate date> COLA date (if [175] = 2)
      [152] <colaTimeField nameref> COLA field (if [175] = 3)
      [162] <COLAFormula expr> COLA formula (character vector, used if [62]=3)
      [165] <colaSENS bool> +/- valuation assumption sensitivities applicable? 0=no, 1=yes

    Optional Forms
      [121] <optforms see OPTFRM_DEF> This item is a matrix having a row for each optional form referenced in a benefit definition
          and columns holding (see OPTFRM_DEF below)

    Assumption Constants
      [207] <axParams vector> Assumption constant parameters
            [1] <axNames ref ASSUMX> Matrix of Assumption Constant names
            [2] <axvalues num> Assumption Constant values, vector with an item for each Assumption Constant [#assumconstants]
DECRATES_MORTRATE_DEF[] Mortality rates
    [1]  <type code> Rate type:
         0=no rates
         1=rates vary by calendar year of decrement
         2=rates vary by coded database field
         3=single rate table
         6=rates by benefit
         8=rates by calendar year of decrement and coded field
        12=rates vary by calendar year of valuation
    [2]  <calYearRates matrix> Calendar year rates (used if type #in 1 8 12)
         [;1] <year int> calendar year (e.g. 1999), the value in [1;1] is ignored
         [;2] <rate ref MORTRATE> id # of table, 0 if <no rates>
    [3]  <field nameref> Name of coded database field (used if type #in 2 8)
    [4]  <databaseRates matrix> Coded database field rates (used if type #in 2 8)
         [;1] <code int> internal database code
         [;2] <table ref MORTRATE> id # of table, 0 if <no rates>, or vector of id #'s
    [5]  <table ref MORTRATE> id # of table (used if type=3)
    [6]  <SvcFldOrDef bool> Use ProVal service field (0) or service definition (1)
    [7]  <SvcField nameref> service field for service-based tables or
         '' if rounded service from hire (used if [6]=0)
    [8]  <SvcDEFN ref SVCDEFN> ID of ProVal service definition for participation service
         (used if [6]=1)
    [9]  <RetAgeType Code> (not used) (initialized to 1)
    [10] <RetAgeNum Num> (not used) (initialized to MV)
    [11] <RetAgeField Nameref> (not used) (initialized to '')
    [12] <RetAgeonValDateBase table Ref RETRATE> (not used) (initialized to MV)
    [13] <RetAgeonValDateMatrix> (not used) (initialized to 0 4 #rho MV)
    [14] <RatesByBenefit matrix> Rates by benefit (used if type=6)
         [;1] <benefit ref BENDEF> id # of benefit definition
         [;2] <table ref MORTRATE> id # of table
    [15] <ValSalOrDef bool> (not used) (initialized to 0)
    [16] <SalDEFN ref SALDEFN> (not used) (initialized to MV)
    [17] <EURDtabcon code> (not used) (initialized to 1)
    [18] <EURDfrac num> (not used) (initialized to MV)
    [19] <EURDYRS num> (not used) (initialized to MV)
    [20] <EURDult num> (not used) (initialized to MV)
DECRATES_TERMRATE_DEF[] Termination rates
    [1]  <type code> Rate type:
         0=no rates
         1=rates vary by calendar year
         2=rates vary by coded database field
         3=single rate table
         6=rates by benefit
         8=rates by calendar year and coded field
    [2]  <calYearRates matrix> Calendar year rates (used if type #in 1 8)
         [;1] <year int> calendar year (e.g. 1999), the value in [1;1] is ignored
         [;2] <rate ref TERMRATE> id # of table, 0 if <no rates>
    [3]  <field nameref> Name of coded database field (used if type #in 2 8)
    [4]  <databaseRates matrix> Coded database field rates (used if type #in 2 8)
         [;1] <code int> internal database code
         [;2] <table ref TERMRATE> id # of table, 0 if <no rates>, or vector of id #'s
    [5]  <table ref TERMRATE> id # of table (used if type=3)
    [6]  <SvcFldOrDef bool> Use ProVal service field (0) or service definition (1)
    [7]  <SvcField nameref> service field for service-based tables or
         '' if rounded service from hire (used if [6]=0)
    [8]  <SvcDEFN ref SVCDEFN> ID of ProVal service definition for participation service
         (used if [6]=1)
    [9]  <RetAgeType Code> (not used) (initialized to 1)
    [10] <RetAgeNum Num> (not used) (initialized to MV)
    [11] <RetAgeField Nameref> (not used) (initialized to '')
    [12] <RetAgeonValDateBase table Ref RETRATE> (not used) (initialized to MV)
    [13] <RetAgeonValDateMatrix> (not used) (initialized to 0 4 #rho MV)
    [14] <RatesByBenefit matrix> Rates by benefit (used if type=6)
         [;1] <benefit ref BENDEF> id # of benefit definition
         [;2] <table ref TERMRATE> id # of table
    [15] <ValSalOrDef bool> (not used) (initialized to 0)
    [16] <SalDEFN ref SALDEFN> (not used) (initialized to MV)
    [17] <EURDtabcon code> (not used) (initialized to 1)
    [18] <EURDfrac num> (not used) (initialized to MV)
    [19] <EURDYRS num> (not used) (initialized to MV)
    [20] <EURDult num> (not used) (initialized to MV)
DECRATES_DISABRATE_DEF[] Disability rates (active members)
    [1]  <type code> Rate type:
         0=no rates
         1=rates vary by calendar year
         2=rates vary by coded database field
         3=single rate table
         6=rates by benefit
         8=rates by calendar year and coded field
    [2]  <calYearRates matrix> Calendar year rates (used if type #in 1 8)
         [;1] <year int> calendar year (e.g. 1999), the value in [1;1] is ignored
         [;2] <table ref DISABRATE> id # of table, 0 if <no rates>
    [3]  <databaseField nameref> Name of coded database field (used if type #in 2 8)
    [4]  <databaseRates matrix> Coded database field rates (used if type #in 2 8)
         [;1] <code int> internal database code
         [;2] <table ref DISABRATE> id # of table, 0 if <no rates>, or vector of id #'s
    [5]  <table ref DISABRATE> id # of table (used if type=3)
    [6]  <SvcFldOrDef bool> Use ProVal service field (0) or service definition (1)
    [7]  <SvcField nameref> service field for service-based tables or
         '' if rounded service from hire (used if [6]=0)
    [8]  <SvcDEFN ref SVCDEFN> ID of ProVal service definition for participation service
         (used if [6]=1)
    [9]  <RetAgeType Code> (not used) (initialized to 1)
    [10] <RetAgeNum Num> (not used) (initialized to MV)
    [11] <RetAgeField Nameref> (not used) (initialized to '')
    [12] <RetAgeonValDateBase table Ref RETRATE> (not used) (initialized to MV)
    [13] <RetAgeonValDateMatrix> (not used) (initialized to 0 4 #rho MV)
    [14] <RatesByBenefit matrix> Rates by benefit (used if type=6)
         [;1] <benefit ref BENDEF> id # of benefit definition
         [;2] <table ref DISABRATE> id # of table
    [15] <ValSalOrDef bool> (not used) (initialized to 0)
    [16] <SalDEFN ref SALDEFN> (not used) (initialized to MV)
    [17] <EURDtabcon code> (not used) (initialized to 1)
    [18] <EURDfrac num> (not used) (initialized to MV)
    [19] <EURDYRS num> (not used) (initialized to MV)
    [20] <EURDult num> (not used) (initialized to MV)
DECRATES_RETRATE_DEF[] Retirement rates (active members).
    [1]  <type code> Rate type:
         1=rates vary by calendar year
         2=rates vary by coded database field
         3=single rate table
         4=100% at a specified retirement age
         5=rates by age/service on valuation date
         6=rates by benefit
         8=rates by calendar year and coded field
         9=actuarial retirement age (IFGERMAN)
        11=same as actives (post-termination retirement rates only)
    [2]  <calYearRates matrix> Calendar year rates (used if type=1)
         [;1] <year int> calendar year (e.g. 1999), the value in [1;1] is ignored
         [;2] <table ref RETRATE> id # of table
    [3]  <databaseField nameref> Name of coded database field (used if type #in 2 8)
    [4]  <databaseRates matrix> Coded database field rates (used if type #in 2 8)
         [;1] <code int> internal database code
         [;2] <table ref RETRATE> id # of table, or vector of id #'s
    [5]  <table ref RETRATE> id # of table (used if type=3)
    [6]  <SvcFldOrDef bool> Use ProVal service field (0) or service definition (1)
    [7]  <SvcField nameref> service field for service-based tables or
         '' if rounded service from hire (used if [6]=0)
    [8]  <SvcDEFN ref SVCDEFN> ID of ProVal service definition for participation service
         (used if [6]=1)
    [9]  <RetAgeType code> Use constant (1) or database field (2) for 100% retirement age (used if [1]=4)
             1=constant
             2=database field
    [10] <RetAgeNum num> Constant age for 100% retirement (used if [9]=1)
    [11] <RetAgeField nameref> Database field for 100% retirement age (used if [9]=2)
    [12] <RetAgeonValDateBase table ref RETRATE> id # of base retirement rates (used if type=5)
    [13] <RetAgeonValDateMatrix matrix> Matrix of rates if using rates defined by age/svc/points on valuation date (used if type=5)
         [;1] <retage num> age
         [;2] <retsvc num> service
         [;3] <retpoints num> points
         [;4] <table ref RETRATE> id # of table
    [14] <RatesByBenefit matrix> Rates by benefit (used if type=6)
         [;1] <benefit ref BENDEF> id # of benefit definition
         [;2] <table ref RETRATE> id # of table
    [15] <ValSalOrDef bool> Use valuation salary (0) or salary definition (1)
    [16] <SalDEFN ref SALDEFN> ID of ProVal salary definition for replacement ratio tables
         (used if [15]=1)
    [17] <EURDtabcon code> If [1]=5 (rates by age/svc/pts), defined by 1=table, 2=constant (Projection Assumptions support tables only)
    [18] <EURDfrac num> If [17]=2, fraction retiring at specified age (not applicable to Projection Assumptions)
    [19] <EURDYRS num> If [17]=2, number of years after val date fraction in [18] retires (not applicable to Projection Assumptions)
    [20] <EURDult num> If [17]=2, ultimate retirement age (not applicable to Projection Assumptions)
DECRATES_SALSCALE_DEF[] Salary merit scale
    [1] <type code> Rate type:
        0=no rates
        1=rates vary by calendar year
        2=rates vary by coded database field
        3=single rate table
        8=rates vary by calendar year and coded field
    [2] <calYearRates matrix> Calendar year rates (used if type #in 1 8)
        [;1] <year int> calendar year (e.g. 1999), the value in [1;1] is ignored
        [;2] <table ref SALSCALE> id # of table, 0 if <no rates>
    [3] <databaseField nameref> Name of coded database field (used if type #in 2 8)
    [4] <databaseRates matrix> Coded database field rates (used if type #in 2 8)
        [;1] <code int> internal database code
        [;2] <table ref SALSCALE> id # of table, 0 if <no rates>, or vector of id #'s
    [5] <table ref SALSCALE> id # of table (used if type=3)
    [6] <SvcFldOrDef bool> Use ProVal service field (0) or service definition (1)
    [7] <SvcField nameref> service field for service-based tables or
        '' if rounded service from hire (used if [6]=0)
    [8] <SvcDEFN ref SVCDEFN> ID of ProVal service definition for participation service
        (used if [6]=1)
INCRATES_DEF[] Component increase rates/Cash Balance/employee contribution interest crediting rates.
    This is a matrix having a row for each symbol used in any of the
    accrual basis & benefit formulas, and columns holding the following
    information:
    [;1]  <name str> component name.  This is the name used in the benefit or accrual basis formula
          #take #take #take FIXME #take #take #take this alternates between ABCOMP or BFCOMP expression
                        but handling it is going to require that I support
                        nested IF or REIF statements that flip-flop state
                        across this tricky region.  Just do as string for now
          See INCRATES_REGDATA_DEF for reserved names for statutory items (component type ([;6])=1);
          These items may or may not be present in the table.
    [;2]  <increaseType code> increase type
             1=static
             2=variable
             3=rate table from library
             4=underlying liability (only available in Canadian mode for [;6]#in 2 9)
    [;3]  <scalarIncRate numorstr> scalar increase rate (if [;2]=1)  May be equal to MV. (can be a assumption constant)
    [;4]  <increaseRates matrix> increase rate table (for [;2]=2).  A 2-column matrix having a
          row for each different increase rate and columns(The table is sorted by year and contains no missing values):
          [;1]  <startYear numorstr> starting year (calendar) (can be an assumption constant)
          [;2]  <rate numorstr> increase rate for this and subsequent years (can be an assumption constant)
    [;5]  <libInc see INCRATES_TABLE_DEF> Increase rate table params (used if [;2]=3)
    [;6]  <type code> type of component:
             1 = statutory
             2 = benefit formula component
             3 = accrual basis formula component
             4 = lifetime maximum - limit/account balance (OPEB only)
             5 = lump sum factor benefit formula component
             6 = (not used, optional forms)
             7 = Custom Regulatory Table
             8 = Modified cash refund annuity deferred interest parameters (Non-German pension modes)
             9 = Employee contributions
            11 = benefit formula component that can vary with alternate benchmark
            12 = COLAs
            13 = eec that can vary with alternate benchmark
            14 = Insurance Contracts (Universal)
            15 = Val Contract Renewals (German)
            16 = Exp Contract Renewals (German)
            17 = New entrant asset transfer
            18 = Lifetime Maximums/Annual Limits - annual credit (OPEB)
    [;7]  <apply01Sens bool> Apply +/- valuation assumption sensitivities? (1=yes, 0=no)
    [;8]  <libEntryID num> ID of library entry for Life Max, Cust Reg, or Employee contrib (comp type [;6]#in 4 7 9 18)
          Note: Columns 9-14 are for benefit formula component Current Values
                (BFC library type 17 or 18; BFC library type is *not* the same as type code in [;6] here)
    [;9]  <CVConstVar bool> Current Value type for constant 0=single constant, 1=varies by coded field (used for BFC library type 17)
    [;10] <CVConstVal numorstr> Constant value (used for BFC library type 17)
    [;11] <CVCodedConst vector> Coded field table (used for BFC library type 17)
           a nested vector holding:
           [1] <field nameref> name of coded field in database
           [2] <item matrix> matrix with a row for each database code, and columns for:
               [;1] <CVConstDatabaseCode code> internal database codes
               [;2] <CVConstCodeValue num> current values
    [;12] <CVTableVar bool> Current Value type for table 0=single table, 1=varies by coded field (used for BFC library type 18)
    [;13] <CVTableTblComp ref ABTABLE> Current benefit component table ID# (used for BFC library type 18)
    [;14] <CVCodedTable vector> Coded field table (used for BFC library type 18)
           a nested vector holding:
           [1] <field nameref> name of coded field in database
           [2] <item matrix> matrix with a row for each database code, and columns for:
               [;1] <CVTableDatabaseCode code> internal database codes
               [;2] <CVTabeTable ref ABTABLE> table id#
    [;15] <useUnderSolv bool> For Solvency & Windup liabilities, use underlying interest rates as crediting rates
          for cash balance benefit formula components and employee contributions (0=no, 1=yes)
LSASSUMS_DEF[] Interest and Mortality Basis for Lump Sum Factors
    This is a matrix having a row for each lump sum factor benefit component, and columns
    holding the following information:
    Note: columns 9-12, and 15 are only used for post-PPA law type in U.S. Qualified mode
    [;1]  <compName str> Component Name
    [;2]  <primaryAnnMort ref MORTRATE> Primary Annuitant Mortality - table id
    [;3]  <conAnnMort ref MORTRATE> Contingent Annuity Mortality - table id
    [;4]  <intRateType code> Interest Rate Type:
           #neg4 = use underlying liability valuation interest rate using lop without adjustment if PPA spot rates
            0 = use underlying liability valuation interest rate
            1 = static (columns 5 and 14 are used)
            4 = variable by duration from valuation date (input as forward rates)
            5 = variable by duration from valuation date (input as spot rates), lop without adjustment
            7 = variable by duration from decrement date (input as forward rates)
            8 = variable by duration from decrement date (input as spot rates)
            9 = variable by duration from valuation date (input as spot rates), lop with adjustment
           11 = variable by calendar year of decrement
    [;5]  <staticIntRate numorstr> Static Interest Rate - Post-commencement (can be assumption constant)
    [;6]  <varIntRate matrix> Variable Interest Rate Table.  An N #times 2 table having a row for
          each duration in which the rate changes.  The columns hold:
          [;1]  <startDuration numorstr> starting duration from valuation date - first row applies to durations prior to the second row
          [;2]  <intRate numorstr> interest rate (can be assumption constant)
    [;7]  <overrideForSpecLiabs code> Override Lump Sum Int&Mort for Specialized Liabs?
            0=no override
            1=override interest only
            2=override int&mort
    [;8]  <DynamicMort code> Dynamic mortality as of
            1=decrement year
            2=valuation year
    [;9]  <ppaIntRateType code> Post-PPA Actuarial Liability Interest Rate Type: (only used for post-PPA law type in U.S. Qualified mode)
            1 = static
            4 = variable by duration from valuation date (input as forward rates)
            5 = variable by duration from valuation date (input as spot rates), lop without adjustment
            7 = variable by duration from decrement date (input as forward rates)
            8 = variable by duration from decrement date (input as spot rates)
            9 = variable by duration from valuation date (input as spot rates), lop with adjustment
           11 = variable by calendar year of decrement
    [;10] <ppaStaticIntRate numorstr> Post-PPA Actuarial Liability Static Interest Rate - Post-commencement (only post-PPA) (can be assumption constant)
    [;11] <ppaVarIntRate matrix> Post-PPA Actuarial Liability Variable Interest Rate Table (only post-PPA).
          An N #times 2 table having a row for each duration in which the rate changes.  The columns hold:
          [;1]  <startDuration numorstr> starting duration from valuation date - first row applies to durations prior to the second row
          [;2]  <intRate numorstr> interest rate (can be assumption constant)
    [;12] <actSameAsTarget bool> Actuarial liabilities use same as Target liabs? (0=no, 1=yes) (only post-PPA)
    [;13] <ApplySens code> Apply interest rate sensitivities (N/A if use underlying interest rates)
           #neg1=n/a
            0=no
            1=yes
    [;14] <staticIntPre numorstr> Static Interest Rate - Pre-commencement (can be assumption constant)
    [;15] <ppaStaticIntRate numorstr> Post-PPA Actuarial Liability Static Interest Rate - Pre-commencement (only post-PPA) (can be assumption constant)
    [;16] <ApplyMortSens bool> Apply mortality sensitivity?
    [;17] <calYear matrix> Calendar year interest rate table.  Row for each year in which the rate changes.
          [;1]  <startYear numorstr> starting year (calendar) - first row applies to all years prior to the year specified in the second row
          [;2]  <rate numorstr> interest rate (can be assumption canstant)
    [;18] <ppaCalYear matrix> Post-PPA Actuarial Liability calendar year interest rate table.  Row for each year in which the rate changes.
          [;1]  <startYear numorstr> starting year (calendar) - first row applies to all years prior to the year specified in the second row
          [;2]  <rate numorstr> interest rate (can be assumption constant)
QPRIMES_DEF[] Probability (at decrement) of participant electing to receive a benefit.
    This item is a matrix having a row for each benefit for which election probabilities
    have been specified and columns holding:
    [;1]  <ben ref BENDEF> benefit ID number
    [;2]  <type code> type of Q'
             0=none
             1=constant
             2=table
    [;3]  <constVal matrix> constant parameters (if type=1)
       [1] <type code> type:
            1=rates vary by calendar year
            2=rates vary by coded database field
            3=single rates
            8=rates vary by calendar year and coded field
       [2] <calYearRates matrix> Calendar year rates (used if type #in 1 8)
            [;1] <year int> calendar year (e.g. 1999), the value in [1;1] is ignored
            [;2] <rates matrix> a matrix holding
                 [;1] <id num> id of payment form (0=normal form)
                 [;2] <const numorstr> constant value (can be assumption constant)
       [3] <databaseField nameref> Name of coded database field (used if type #in 2 8)
       [4] <databaseRates matrix> Coded database field rates (used if type #in 2 8)
            [;1] <code int> internal database code
            [;2] <rates matrix> a matrix holding
                 [;1] <id num> id number of payment form (0=normal form)
                 [;2] <const numorstr> constant value, or vector of values for calendar years (can be assumption constant)
       [5] <constVal matrix> constant value (used if type=3) a matrix holding
            [;1] <id num> id number of payment form (0=normal form)
            [;2] <const numorstr> constant value (May be equal to MV if type=0) (can be assumption constant)
    [;4]  <table matrix> table params
       [1] <type code> Table type:
            1=rates vary by calendar year
            2=rates vary by coded database field
            3=single rate table
            8=rates vary by calendar year and coded field
       [2] <calYearRates matrix> Calendar year rates (used if type #in 1 8)
            [;1] <year int> calendar year (e.g. 1999), the value in [1;1] is ignored
            [;2] <table matrix> id # of table
                [;1] <id num> id of payment form (0=normal form)
                [;2] <table ref POSTDECPROB> id # of table
       [3] <databaseField nameref> Name of coded database field (used if type #in 2 8)
       [4] <databaseRates matrix> Coded database field rates (used if type #in 2 8)
            [;1] <code int> internal database code
            [;2] <table matrix> id # of table
                [;1] <id num> id of payment form (0=normal form)
                [;2] <table ref POSTDECPROB> id # of table, or vector of id #'s for calendar years
       [5] <table matrix> tables (used if type=3)
            [;1] <id num> id of payment form (0=normal form)
            [;2] <table ref POSTDECPROB> id # of table
       [6] <SvcFldOrDef bool> Use ProVal service field (0) or service definition (1)
       [7] <SvcField nameref> service field for service-based tables or
            '' if rounded service from hire (used if [6]=0)
       [8] <SvcDEFN ref SVCDEFN> ID of ProVal service definition for participation service
            (used if [6]=1)
SALASSUMS_DEF[] Salary increase overrides for individual operators
    This is a matrix having a row for each salary definition to which an override applies,
    and columns holding the following information:
    [;1] <overrideUsed bool> Using override (0=no, 1=yes)
    [;2] <defId ref SALDEFN> ID# of salary definition
    [;3] (not used)
    [;4] <salType code> Type of salary override
            0=none
            1=rates vary by calendar year
            2=rates vary by coded database field
            3=single rate
            8=rates vary by calendar year and coded field
    [;5] <constantRate numorstr> Contant Interest Rate (used if [;4]=3) (can be assumption constant)
    [;6] <calYrAndRate matrix> Calendar years and interest rates for those years (used if [;4]#in 1 8)
          [;1]  <startYear int> starting year (calendar)
          [;2]  <rate numorstr> increase rate for this and subsequent years (used if type=1, else use info in [;10]) (can be assumption constant)
    [;7] <meritScale see DECRATES_SALSCALE_DEF> Salary merit scale override
    [;8] <addtlMeritScale see DECRATES_SALSCALE_DEF> Additional salary merit scale override
    [;9] <salField nameref> Name of coded database field (used if type #in 2 8)
    [;10] <salRates matrix> Coded database field rates (used if type #in 2 8)
          [;1] <code int> internal database code
          [;2] <const numorstr> constant value, or vector of values for calendar years (can be assumption constant)
FRACMARRIED_DEF[] Fraction of population married
    [1] <type code> Rate type (0 and 1 not used):
        0=no rates
        1=rates vary by calendar year
        2=rates vary by coded database field
        3=single rate table
    [2] <calYearRates matrix> Calendar year rates (used if type=1)
        [;1] <year int> calendar year (e.g. 1999), the value in [1;1] is ignored
        [;2] <table ref FRACMARRIED> id # of table, 0 if <no rates>
    [3] <databaseField nameref> Name of coded database field (used if type=2)
    [4] <databaseRates matrix> Coded database field rates (used if type=2)
        [;1] <code int> internal database code
        [;2] <table ref FRACMARRIED> id # of table, 0 if <no rates>
    [5] <table ref FRACMARRIED> id # of table (used if type=3)
STATOVER_DEF[] Historical Statutory data override.
    An N #times 21 table having a row for each year to override.  The columns hold:
    [;1]  <year int>     Year
    [;2]  <maxBen num>   U.S. Maximum benefit
    [;3]  <maxComp num>  U.S. Maximum compensation
    [;4]  <ssWage num>   U.S. Social Security wage base
    [;5]  <cpi num>      U.S. CPI
    [;6]  <ssNatAvgWage num> U.S. Social Security national average wage
    [;7]  <canYmpe num>  Canadian YMPE
    [;8]  <canITA num>   Canadian ITA
    [;9]  <gerGAIW num>  German Average Income, West (not editable)
    [;10] <gerGAIW num>  German Average Income, East (not editable)
    [;11] <gerBBGW num>  German BBG: West
    [;12] <gerBBGWM num> German BBG: West Coalminers
    [;13] <gerARWW num>  German ARW: West
    [;14] <gerARWE num>  German ARW: East
    [;15] <gerBBGKV num> German BBG: Healthcare
    [;16] <ukFixed num>  UK Fixed Revaluation rates
    [;17] <ukRPI num>    UK RPI
    [;18] <ukCPI num>    UK CPI
    [;19] <ukS148 num>   UK Earnings Index (Section 148)
    [;20] <ukLEL num>    UK LEL
    [;21] <canYAMPE num> Canadian YAMPE
COLAASSUMS_DEF[] Individual Benefit COLA overrides
    This is a matrix having a row for each active or inactive benefit to which an override applies,
    and columns holding the following information:
    [;1]  <benType code> Type of benefit
             0=active benefit
             1=inactive benefit
             2=lump sum factor benefit formula component
    [;2]  (not used)
    [;3]  <benId int> ID# of benefit
    [;4]  <colaPayPeriod see DECRATES_COLA_DEF in COLA#deltaDOC> COLA during payment period (or DECRATES_COLA_EXPER_DEF if projection assumptions)
    [;5]  <colaDeferPeriod see DECRATES_COLA_DEF in COLA#deltaDOC> COLA during deferral period (or DECRATES_COLA_EXPER_DEF if projection assumptions)
    [;6]  <rateType code> Rate type
             1 = compound
             2 = simple
             3 = advanced (i.e. expression in [;9])
    [;7]  <benCompName str> Benefit formula component name (used only when [;1]=2)
    [;8]  (not used)
    [;9]  <COLAFormula expr> COLA formula (a character vector, used when [;6]=3)
    [;10] <COLAsens bool> are +/- valuation assumption sensitivities applicable? 0=no, 1=yes
    [;11] <colaPst2017 bool> Apply deferral period COLA to post-1/1/2018 portion of benefit only? 0=no, 1=yes (Germany only)
    [;12] <colaTimeType code> COLA timing type
           1 = end of year
           2 = constant date
           3 = database field
           4 = according to valuation assumptions (available in non-German only)
    [;13] <colaTimeDate date> COLA date (if [;16]=1^[;12]=2)
    [;14] <colaTimeField nameref> COLA field (if [;16]=1^[;12]=3)
    *** 15-21 Apply to German mode only
    [;15] <applyCOLA bool> For retirement decrements, apply COLA from sharp ages
    [;16] <colaAnnualType code> COLA timing type
            1 = annually
            2 = every X years
            3 = according to valuation assumptions
    [;17] <colaXyears num> X (if [;16]=2)
    [;18] <colaTimeTypeX code> Every X years COLA timing type (if [;16]=2)
            1 = X years from date of commencement
            2 = at constant date
            3 = at date from database field
    [;19] <colaTimeDateX date> COLA date (if [;16]=2^[;18]=2)
    [;20] <colaTimeFieldX nameref> COLA field (if [;16]=2^[;18]=3)
    [;21] <colaReduceFirst bool> Reduce first increase if less than X years? 0=no, 1=yes (if [;16]=2^[;18]#in 2 3)
OPTFRM_DEF[] Optional form parameters in valuation assumptions
    This item is a matrix having a row for each optional form referenced in a benefit definition
    and columns holding:
    [;1]  <payfrm ref PAYFORM> payment form ID number
    [;2]  <type code> type of assums
             1=int & mort
             2=table
             3=underlying interest
             4=variable interest & mortality
            #neg1=underlying interest using lop without adjustment if PPA spot rates
             11=calendar year of decrement interest & mortality
    [;3]  <intrate numorstr> interest rate (if type=1) (can be assumption constant)
    [;4]  <varIntRate matrix> Variable Interest Rate Table.  (for type=4) An N #times 2 table having a row for
          each duration in which the rate changes.  The columns hold:
          [;1]  <startDuration numorstr> starting duration from valuation date - first row applies to durations prior to the second row
          [;2]  <intRate numorstr> interest rate (can be assumption constant)
    [;5]  <VarDate code> Variable interest as of:
            1=valuation date
            2=decrement date
    [;6]  <VariableInput code> variable interest is:
            1=forward rates
            2=spot rates
            5=spot rates, lop without adjustment
    [;7]  <morttbl ref MORTRATE> primary annuitant mortality table ID# (if type #ne 2)
    [;8]  <conmorttbl ref MORTRATE> contingent annuitant mortality table ID# (if type #ne 2)
    [;9]  <gen code> if generational mortality from:
            1=valuation date
            2=decrement date
    [;10] <table ref ABTABLE> benefit component table id # (for type=2)
    [;11] <override code> Override Int&Mort for Actuarial liability (PPA) or Specialized Liabs?
            0=no override
            1=override interest only
            2=override int&mort
    [;12] <AlIntrate num> interest type for actuarial liability if override
            1 = static
            4 = variable by duration from valuation date (input as forward rates)
            5 = variable by duration from valuation date (input as spot rates), lop without adjustment
            7 = variable by duration from decrement date (input as forward rates)
            8 = variable by duration from decrement date (input as spot rates)
            9 = variable by duration from valuation date (input as spot rates), lop with adjustment
           11 = calendar year of decrement interest rates
    [;13] <AlIntrate numorstr> interest rate for actuarial liability if override
    [;14] <ALVarIntRate matrix> Variable Interest Rate Table for actuarial liability.  (for type=4) An N #times 2 table having a row for
          each duration in which the rate changes.  The columns hold:
          [;1]  <startDuration numorstr> starting duration from valuation date - first row applies to durations prior to the second row
          [;2]  <intRate numorstr> interest rate (can be assumption constant)
    [;15] <ApplySens bool> Apply interest rate sensitivities (N/A if use underlying interest rates)
    [;16] <PlanTblComAge code> Plan factors table lookup at:
            1=decrement age
            2=commencement age
    [;17] <ApplyMortSens bool> Apply mortality sensitivities?
    [;18] <calYear matrix> Calendar year interest rate table.  Row for each year in which the rate changes.
          [;1]  <startYear numorstr> starting year (calendar) - first row applies to all years prior to the year specified in the second row
          [;2]  <rate numorstr> interest rate (can be assumption constant)
    [;19] <ppaCalYear matrix> Calendar year interest rate table for actuarial liability (for type 11).  Row for each year in which the rate changes.
          [;1]  <startYear numorstr> starting year (calendar) - first row applies to all years prior to the year specified in the second row
          [;2]  <rate numorstr> interest rate (can be an assumption constant)
    [;20] <ApplyCOLAs bool> Apply COLAs?
DECRATES_COLA_DEF[] COLA Definition Vector for valuation assumptions
    [1] <type code> Type
          1 = constant
          2 = variable
          3 = db field
    [2] <const numorstr> Constant COLA rate (can be an assumption constant)
    [3] <table see COLA_TABLE_DEF> COLA table params
    [4] <field nameref> Name of db field containing COLA rate
COLA_TABLE_DEF[] COLA table params
    [1] <type code> Variable type:
        0=no rates
        1=rates vary by calendar year
        2=rates vary by coded database field
        3=single rate table
        7=rates vary by duration from valuation date (Canadian transfer value COLA only)
        8=rates vary by coded field and calendar year
    [2] <calYearRates matrix> Calendar year rates (used if type #in 1 8)
        [;1] <year int> calendar year (e.g. 1999), the value in [1;1] is ignored
        [;2] <table numorstr> id # of table or 0 if <no rates> (if [6]=2) or COLA rate (if [6]=3) (used if type=1, else use info in [4])
             (COLA rates may be numeric or assumption constants)
    [3] <databaseField nameref> Name of coded database field (used if type #in 2 8)
    [4] <databaseRates matrix> Coded database field rates (used if type #in 2 8)
        [;1] <code int> internal database code
        [;2] <table numorstr> id # of table or 0 if <no rates> (if [6]=2) or COLA rate (if [6]=3) (vector of ids/rates if type=8)
             (COLA rates may be numeric or assumption constants)
    [5] <table ref COLA> id # of table (used if type=3)
    [6] <entryType code> Entry type:
        1=no longer used; do not reuse
        2=table
        3=constant
    [7] <durRates matrix> Rates variable by duration (used if type=7) (Used only by Canadian transfer value COLA)
        [;1] <year int> duration from valuation date, the value in [1;1] is ignored
        [;2] <table num> id # of table or 0 if <no rates> (if [6]=2) or COLA rates (if [6]=3)
             (COLA rates may be numeric or assumption constants)
